package com.hjy.elasticsearch.entity;

import cn.hutool.core.util.StrUtil;
import com.hjy.elasticsearch.myEnum.ProductTypeEnum;

import java.math.BigDecimal;

/**
 * @CopyRight: 版权所有
 * @Author: hejinyi
 * @Description:
 * @Date: 2020/12/1
 */
public class ProductEntity extends ESEntity {
    /**
     *对应的存入Elasticsearch的表名，必须是小写
     */
//    private String INDEX_NAME = "*product*";
//    /**
//     * 分组名称
//     */
//    private String TYPE = "*product*";


    /**
     * 主体id
     */
    private String body_id;

    /**
     * 主体名称
     */
    private String body_name;
    /**
     * 主体编码
     */
    private String body_code;
    /**
     * 1:景区主体 2:酒店主体 3:餐馆主体
     */
    private String body_type;
    /**
     * 描述
     */
    private String description;


    /**
     * 销售参考价
     */
    private String refer_price;

    /**
     * 产品名称
     */
    private String product_name;
    /**
     * 产品code
     */
    private String product_code;
    /**
     * 产品类型code
     */
    private String product_group_code;

    /**
     * 封面图
     */
    private String cover;

    /**
     * 起始价
     */
    private String price;

    /**
     * 星级
     */
    private String star_type;

    /**
     * 经度
     */
    private String longitude;
    /**
     * 纬度
     */
    private String latitude;


    /**
     * 展示名称：product_name或者body_name
     */
    private String showName;
    /**
     * 展示code:body_code或者product_code
     */
    private String code;
    private String type;
    private String typeStr;


    public String getCode() {
        if(StrUtil.isNotBlank(body_code)){
            return body_code;
        }
        if(StrUtil.isNotBlank(product_code)){
            return product_code;
        }
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getType() {
        if(StrUtil.isNotBlank(body_type)){
            return ProductTypeEnum.getEnumByNumber(Integer.valueOf(body_type)).getCode()+"";
        }
        if(StrUtil.isNotBlank(product_group_code)){
            return ProductTypeEnum.getEnumByNumber(Integer.valueOf(product_group_code)).getCode()+"";
        }
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getTypeStr() {
        if(StrUtil.isNotBlank(body_type)){
            return ProductTypeEnum.getEnumByNumber(Integer.valueOf(body_type)).getDesc();
        }
        if(StrUtil.isNotBlank(product_group_code)){
            return ProductTypeEnum.getEnumByNumber(Integer.valueOf(product_group_code)).getDesc();
        }
        return typeStr;
    }

    public void setTypeStr(String typeStr) {
        this.typeStr = typeStr;
    }

    public String getShowName() {
        if(StrUtil.isNotBlank(product_name)){
            return product_name;
        }else if(StrUtil.isNotBlank(body_name)){
            return body_name;
        }
        return showName;
    }

    public void setShowName(String showName) {
        this.showName = showName;
    }
    public String getPrice() {
        if(StrUtil.isNotBlank(refer_price)){
            BigDecimal num = new BigDecimal(refer_price);
            if(num.compareTo(BigDecimal.ZERO) == 1){
                return refer_price;
            }else{
                return BigDecimal.ZERO.toString();
            }
        }
        return price;
    }

    public void setPrice(String price) {
        this.price = price;
    }

    public String getBody_code() {
        return body_code;
    }

    public void setBody_code(String body_code) {
        this.body_code = body_code;
    }

    public String getBody_id() {
        return body_id;
    }

    public void setBody_id(String body_id) {
        this.body_id = body_id;
    }

    public String getBody_name() {
        return body_name;
    }

    public void setBody_name(String body_name) {
        this.body_name = body_name;
    }


    public String getStar_type() {
        return star_type;
    }

    public void setStar_type(String star_type) {
        this.star_type = star_type;
    }

    public String getLongitude() {
        return longitude;
    }

    public void setLongitude(String longitude) {
        this.longitude = longitude;
    }

    public String getLatitude() {
        return latitude;
    }

    public void setLatitude(String latitude) {
        this.latitude = latitude;
    }

    public String getProduct_code() {
        return product_code;
    }

    public void setProduct_code(String product_code) {
        this.product_code = product_code;
    }

    public String getProduct_group_code() {
        return product_group_code;
    }

    public void setProduct_group_code(String product_group_code) {
        this.product_group_code = product_group_code;
    }

    public String getProduct_name() {
        return product_name;
    }

    public void setProduct_name(String product_name) {
        this.product_name = product_name;
    }

    public String getCover() {
        return cover;
    }

    public void setCover(String cover) {
        this.cover = cover;
    }

    public String getBody_type() {
        return body_type;
    }

    public void setBody_type(String body_type) {
        this.body_type = body_type;
    }

    public String getRefer_price() {
        return refer_price;
    }

    public void setRefer_price(String refer_price) {
        this.refer_price = refer_price;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }
}
